﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using VINETLIFE.BL;
using VINETLIFE.DO;
using VINETLIFE.AdminCP;
using System.Web.UI.HtmlControls;

namespace VINETLIFE
{
    public partial class Dang_Ky : System.Web.UI.Page
    {
        cmsCustomerDO objCust = new cmsCustomerDO();
        cmsCustomerBL customerBL = new cmsCustomerBL();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["CustomerId"] != null)
            {
                Functions.Alert("Bạn đã đăng nhập, không thể tạo mới tài khoản. Vui lòng đăng xuất trước khi vào trang!","/");
            }
            if (!IsPostBack)
            {
                SEO();
                InitForm();
            }
            //SEO
        }
        private void SEO()
        {
            Page.Title = "Đăng ký tài khoản | " + Ultility.WebTitle();

            sysConfigDO objConfig = new sysConfigDO();
            objConfig.ConfigID = 2;

            objConfig = new sysConfigBL().Select(objConfig);


            HtmlMeta metaKey = new HtmlMeta();
            metaKey.Name = "keywords";
            metaKey.Content = objConfig.ConfigValue;
            Page.Header.Controls.Add(metaKey);


            objConfig.ConfigID = 3;
            objConfig = new sysConfigBL().Select(objConfig);
            HtmlMeta metaDesc = new HtmlMeta();
            metaDesc.Name = "description";
            metaDesc.Content = objConfig.ConfigValue;
            Page.Header.Controls.Add(metaDesc);
        }
        public void InitForm()
        {
            if (!string.IsNullOrEmpty(Request.QueryString["ID"]))
            {
                txtIntroductionName.Text = Request.QueryString["ID"];
                txtIntroductionName.Enabled = false;
            }
            else
            {
                txtIntroductionName.Enabled = true;
            }
        }
        protected void Initobject()
        {
            
            objCust.FullName = txtName.Text;
            objCust.UserName = txtUserName.Text;
            objCust.Email = txtEmail.Text;
            objCust.Address = txtAdress.Text;
            
            objCust.Password = Ultility.EncryptMd5(txtPassword.Text.Trim());
            objCust.Phone = txtPhone.Text;

            if (rdoNam.Checked)
            {
                objCust.Sex = true;
            }
            else
            {
                objCust.Sex = false;
            }
            if (txtBirtday.Text != "")
            {
                objCust.Brithday = Myfunction.ReturnValidateDateTime(txtBirtday.Text);
            }
            else
                objCust.Brithday = DateTime.Now;
            objCust.RegisterDay = DateTime.Now;
            objCust.IsEnable = true;
            objCust.IsVangLai = false ;
            objCust.Identification = txtCmnd.Text.Trim();
            objCust.CreatedById = -1;
            objCust.LastSaveDate = new DateTime(1900,1,1);
            objCust.CreatedDate = DateTime.Now;
            objCust.LastModifiedById = -1;
            if (!string.IsNullOrEmpty(Request.QueryString["ID"]))
            {
                string customerCode = Request.QueryString["ID"];
                objCust.IntroductionCustomerCode = customerCode;
                cmsCustomerDO objIntroCustomer = new cmsCustomerBL().SelectByCustomerCode(customerCode);
                if (objIntroCustomer != null)
                {
                    objCust.IntroductionCustomerId = objIntroCustomer.Id;
                }
            }
            else
            {
                if (!string.IsNullOrEmpty(txtIntroductionName.Text.Trim()))
                {
                    string customerCode = txtIntroductionName.Text.Trim();
                    objCust.IntroductionCustomerCode = customerCode;
                    cmsCustomerDO objIntroCustomer = new cmsCustomerBL().SelectByCustomerCode(customerCode);
                    if (objIntroCustomer != null)
                        objCust.IntroductionCustomerId = objIntroCustomer.Id;
                }
                else
                {
                    objCust.IntroductionCustomerCode = "";
                    objCust.IntroductionCustomerId = 0;
                }
            }
        }
        protected void btnDangky_Click(object sender, EventArgs e)
        {
            Initobject();
            /// Cần tối ưu lại
            /// Ví dụ: Truyền dữ liệu vào trong câu Insert:
            /// Trả ra: -2: User đã tồn tại
            /// Trả ra: -1: Email đã tồn tại
            /// Trả ra:  0: Ko insert được
            /// Trả ra: >0: Chính là Id mới nhất

            int returnValue = customerBL.Registration(objCust);
            if (returnValue == -2)
            {
                ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "alert", "alert('Tên đăng nhập đã tồn tại!');", true);
                txtUserName.Focus();
                return;
            }
            else if (returnValue == -1)
            {
                ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "alert", "alert('Email đã tồn tại!');", true);
                txtEmail.Focus();
                return;
            }
            else if (returnValue == 0)
            {
                ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "alert", "alert('Có lỗi xảy ra, không thể tạo tài khoản. Vui lòng liên hệ với chúng tôi!');", true);
                return;
            }
            else
            {
                objCust.Id = returnValue;
                objCust = customerBL.Select(objCust);
                Session["FullName"] = objCust.FullName;
                Session["UserName"] = objCust.UserName;
                Session["CustomerId"] = objCust.Id;
                /*Tạo tài khoản hệ thống*/
                cmsAccountDO objAccount = new cmsAccountDO();
                objAccount.AccountCode = objCust.CustomerCode;
                objAccount.CreatedById = -1;
                objAccount.CreatedDate = DateTime.Now;
                objAccount.CustomerId = objCust.Id;
                objAccount.CustomerCode = objCust.CustomerCode;
                objAccount.DepositBeforeTran = 0;
                objAccount.Deposite = 0;
                objAccount.LastModifiedId = -1;
                objAccount.LastSaveDate = new DateTime(1900,1,1);
                objAccount.SystemStatus = "A";
                new cmsAccountBL().Insert(objAccount);

                Functions.Alert("Đăng ký tài khoản thành công!","/");
            }
           
        }

        protected void btnLamlai_Click(object sender, EventArgs e)
        {
            txtAdress.Text = "";
            txtBirtday.Text = "";
            txtEmail.Text = "";
            txtName.Text = "";
            txtPass.Text = "";
            txtPassword.Text = "";
            txtPhone.Text = "";
            txtUserName.Text = "";
            txtUserName.Focus();
        }

        protected void btnhuy_Click(object sender, EventArgs e)
        {
            Response.Redirect("/");
        }
    }
}